package com.woniuxy.sddfp.access.service.impl;
import java.time.LocalDateTime;

import com.woniuxy.sddfp.access.entity.TradeLog;
import com.woniuxy.sddfp.access.mapper.TradeLogMapper;
import com.woniuxy.sddfp.access.service.ITradeLogService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.woniuxy.sddfp.common.model.dto.bank.BankCardAddDTO;
import com.woniuxy.sddfp.common.model.dto.bank.SignatureDto;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 托管系统交易记录表 服务实现类
 * </p>
 *  1、tradeservice 的作用
 *         1、记录日志
 *         2、发送数据到 银行系统
 * @author yellow doctor
 * @since 2025-06-25
 *     我 ====》 让 唐家豪办事  ====》 叶春
 *                 1、记录日志
 *                       采购大米
 *                       2个西瓜
 *                 2、去粮油店
 *                       返回粮油
 *                    买2个西瓜
 *                        返回西瓜
 */
@Service
public class TradeLogServiceImpl extends ServiceImpl<TradeLogMapper, TradeLog> implements ITradeLogService {

    /**
     * 绑卡操作
     * @param bankCardAddDTO
     * @return
     */
    @Override
    public SignatureDto proxyBindCardLog(BankCardAddDTO bankCardAddDTO) {

        //01 记录日志
        TradeLog tradeLog = new TradeLog();

        //请求流水号
        tradeLog.setReqCode(bankCardAddDTO.getReqCode());
        //给一个默认字符串
        tradeLog.setReqType("USER_BIND_CARD");

        //业务表示 给 userId
        tradeLog.setObjectId(bankCardAddDTO.getUserId());

        //创建时间
        tradeLog.setCreateDate(LocalDateTime.now());
        tradeLog.setConfirmDate(LocalDateTime.now()); //确认时间

        //数据同步  银行返回数据 你才操作
//        tradeLog.setSynchronizeStatus(0);
        //银行返回的数据
//        tradeLog.setResponseData("");

        save(tradeLog);


        //02 发送数据到银行系统
        System.out.println("模拟发送数据到银行....");

        SignatureDto signatureDto = new SignatureDto();
        signatureDto.setBankUrl("http://www.zhongguobank.com");
        signatureDto.setPlatformNo("中国银行");
        signatureDto.setReqData("{\"msg\":\"成功\",\"code\":\"100000\"}");
        signatureDto.setReqCode(bankCardAddDTO.getReqCode());

        signatureDto.setReqCode(bankCardAddDTO.getReqCode());

        return signatureDto;
    }
}
